﻿using SDF.Admin.Models.Common;
using SDF.Web.Framework;
using SDF.Web.Framework.Mvc;

namespace SDF.Admin.Models.Settings
{
    public partial class ShippingSettingsModel : BaseSDFModel
    {
        public int ActiveProjectScopeConfiguration { get; set; }
        
        [SDFResourceDisplayName("Admin.Configuration.Settings.Shipping.ShipToSameAddress")]
        public bool ShipToSameAddress { get; set; }
        public bool ShipToSameAddress_OverrideForProject { get; set; }

        [SDFResourceDisplayName("Admin.Configuration.Settings.Shipping.AllowPickUpInProject")]
        public bool AllowPickUpInProject { get; set; }
        public bool AllowPickUpInProject_OverrideForProject { get; set; }

        [SDFResourceDisplayName("Admin.Configuration.Settings.Shipping.DisplayPickupPointsOnMap")]
        public bool DisplayPickupPointsOnMap { get; set; }
        public bool DisplayPickupPointsOnMap_OverrideForProject { get; set; }

        [SDFResourceDisplayName("Admin.Configuration.Settings.Shipping.GoogleMapsApiKey")]
        public string GoogleMapsApiKey { get; set; }
        public bool GoogleMapsApiKey_OverrideForProject { get; set; }

        [SDFResourceDisplayName("Admin.Configuration.Settings.Shipping.UseWarehouseLocation")]
        public bool UseWarehouseLocation { get; set; }
        public bool UseWarehouseLocation_OverrideForProject { get; set; }

        [SDFResourceDisplayName("Admin.Configuration.Settings.Shipping.NotifyCustomerAboutShippingFromMultipleLocations")]
        public bool NotifyCustomerAboutShippingFromMultipleLocations { get; set; }
        public bool NotifyCustomerAboutShippingFromMultipleLocations_OverrideForProject { get; set; }
        
        [SDFResourceDisplayName("Admin.Configuration.Settings.Shipping.FreeShippingOverXEnabled")]
        public bool FreeShippingOverXEnabled { get; set; }
        public bool FreeShippingOverXEnabled_OverrideForProject { get; set; }

        [SDFResourceDisplayName("Admin.Configuration.Settings.Shipping.FreeShippingOverXValue")]
        public decimal FreeShippingOverXValue { get; set; }
        public bool FreeShippingOverXValue_OverrideForProject { get; set; }

        [SDFResourceDisplayName("Admin.Configuration.Settings.Shipping.FreeShippingOverXIncludingTax")]
        public bool FreeShippingOverXIncludingTax { get; set; }
        public bool FreeShippingOverXIncludingTax_OverrideForProject { get; set; }

        [SDFResourceDisplayName("Admin.Configuration.Settings.Shipping.EstimateShippingEnabled")]
        public bool EstimateShippingEnabled { get; set; }
        public bool EstimateShippingEnabled_OverrideForProject { get; set; }

        [SDFResourceDisplayName("Admin.Configuration.Settings.Shipping.DisplayShipmentEventsToCustomers")]
        public bool DisplayShipmentEventsToCustomers { get; set; }
        public bool DisplayShipmentEventsToCustomers_OverrideForProject { get; set; }

        [SDFResourceDisplayName("Admin.Configuration.Settings.Shipping.DisplayShipmentEventsToProjectOwner")]
        public bool DisplayShipmentEventsToProjectOwner { get; set; }
        public bool DisplayShipmentEventsToProjectOwner_OverrideForProject { get; set; }

        [SDFResourceDisplayName("Admin.Configuration.Settings.Shipping.BypassShippingMethodSelectionIfOnlyOne")]
        public bool BypassShippingMethodSelectionIfOnlyOne { get; set; }
        public bool BypassShippingMethodSelectionIfOnlyOne_OverrideForProject { get; set; }
        
        public AddressModel ShippingOriginAddress { get; set; }
        public bool ShippingOriginAddress_OverrideForProject { get; set; }
    }
}